package com.coderman.infosys.auth.domain.repository;

import com.coderman.infosys.auth.domain.bo.system.MenuBO;
import com.coderman.infosys.auth.domain.bo.system.ModuleBO;
import com.coderman.infosys.auth.domain.bo.system.SystemBO;


/**
 * @Description:系统菜单按钮仓库服务接口
 * @Author:shenshuai
 * @CreateTime:2022-01-02 15:27:38
 * @version v1.0
 */
public interface SystemModuleRepository{

	/**
	 *
	 * @Description 创建系统信息
	 * 如果模块菜单和按钮信息不为空则一并创建
	 * @param systemBO
	 * @return Long
	 */
     Long registSystemMeta(SystemBO systemBO);

	/**
	 *
	 * @Description 更新系统信息
	 * @param systemBO
	 * @return Integer
	 */
     Integer updateSystemMeta(SystemBO systemBO);


	/**
	 * 通过repository进行系统聚合根的组装
	 * @param systemCode
	 * @return
	 */
	 SystemBO getBySystemCode(String systemCode);

	/**
	 * 通过模块编码来获取模块信息
	 * @param moduleCode
	 * @return
	 */
	 ModuleBO getByModuleCode(String moduleCode);


	/**
	 * 根据菜单code获取菜单ID
	 * @param menuCode
	 * @return
	 * 通过这个接口返回的肯定是一个整个对象
	 */
	 MenuBO getMenuBO(String menuCode);
}